
#ifndef IMAGE_H
#define IMAGE_H

#include "DirectXInterface.h"


// its a image, duh
class Image
{
public:
	Image(){};

	float getWidth();
	float getHeight();

	float HalfWidth();
	float HalfHeight();

	ID3D11ShaderResourceView* getColorMap(){return colorMap;};
	void setColorMap(ID3D11ShaderResourceView* colorMap, ID3D11Device* device);
	
	ID3D11SamplerState* getColorMapSampler(){return colorMapSampler;};
	void setColorSampler(ID3D11SamplerState* colorMapSampler);

	ID3D11VertexShader* getVertexShaderInfo(){return vertexShaderInfo;};
	void setVertexShaderInfo(ID3D11VertexShader* vertexShaderInfo); 

	ID3D11PixelShader* getPixelShaderInfo(){return pixelShaderInfo;};
	void setPixelShaderInfo(ID3D11PixelShader* pixelShaderInfo);

	ID3D11BlendState* getBlendState(){return alphaBlendState;};
	void setBlendState(ID3D11BlendState* alphaBlendState);

	ID3D11InputLayout* getInputLayout(){return inputLayout;};
	void setInputLayout(ID3D11InputLayout* inputLayout);
		
	ID3D11Buffer* getVertexBuffer() {return vertexBuffer;};


protected:

	D3D11_TEXTURE2D_DESC imageDesc;// never, never do any operation with this struct! If you do... I'll KILL you!

	ID3D11ShaderResourceView* colorMap;
    ID3D11SamplerState* colorMapSampler;

	ID3D11VertexShader* vertexShaderInfo;
	ID3D11PixelShader* pixelShaderInfo;

	ID3D11BlendState* alphaBlendState;

	ID3D11InputLayout* inputLayout;

	DirectXInterface::VertexPos* vertices;
	ID3D11Buffer* vertexBuffer;
};

#endif